import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLData;
import java.sql.SQLException;

/**
 * @User: vitobo
 * @Date: 2022-11-14
 * @Description: 数据库连接测试
 */
public class demo {

    public static void main(String[] args) throws SQLException {
        // 使用jdbc 往数据库中，插入一个记录。
        // 需要提前准备好数据库 和 数据表

        // 1.创建数据源，描述了数据库服务器在哪
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test1?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("12369874");



        // 2.和数据库建立网络连接。
        Connection connection = dataSource.getConnection();

        // 3.构造一个SQL语句，来完成插入操作
        //String sql = "insert into student values(3, '张三')";
        String sql = "insert into student values(?,?)";
        // jdbc中还需要搭配一个特定的对象，来描述这里的sql的情况
        PreparedStatement statement = connection.prepareStatement(sql);

        //statement.setInt(1, id);
        //statement.setString(2, name);
        //System.out.println("sql: "+ statement);

        // 4.执行SQL语句  针对增，删，改，查使用executeUpdate来执行
        //               针对 查，使用executeQuery来执行
        // 执行就是给服务器发送网络请求了
        // 返回结果的含义是，这个操作，影响到几行

        int ret = statement.executeUpdate();
        System.out.println("ret = " + ret);

        // 5.断开和数据库的连接，并且释放必要的资源。
        // 连接，本质上就是找个地方，记录一下“我和谁建立连接了"
        // 当连接不再使用的时候，就需要释放连接，把之前的记录给”察除掉“
        statement.close();
        connection.close();
    }
}
